package com.zsrt.designmodel.ch04.demo02;


/**
 * 
 * 工厂模式三部曲 之二： 工厂方法模式
 * 模拟生产枪械的兵工厂
 * 
 * SimpleFactory 简单工厂
 * 
 * 
 * 
 * 简单工厂模式=静态工厂方法模式：是工厂方法模式的最简单的方式，是工厂方法模式的一个特列
 * @author zsrt
 *
 *简单工厂模式的缺点：如果要增加一款武器 AK88 。那么需要修改BingFactory类。并且新建一个类 AK88。
 *注意：我们并不希望BingFactory这个类开放给用户。也就是我们希望BingFactory以后的代码不需要修改，如何优化?  
 *
 *用工厂方法模式:把BingFactory定义成接口或者抽象类 并把创建对象延迟到子类中去  工厂方法模式
 *
 *优点：当增加一种枪的时候。不需要修改自己的代码 而只要增加一个子类就行。
 *
 *	缺点：如果在BingFactory要生产枪和枪的子弹  如何保证可以正确地配对?  必须用抽象工厂
 *
 */
public interface BingFactory{

	/**
	 * 把BingFactory定义成接口或者抽象类 并把创建对象延迟到子类中去  工厂方法模式
	 * @param name
	 * @return
	 */
	Gun createGun();

}
